#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

// gcc 05_pthread.c -lpthread

//线程回调函数
void *function01(void *arg)
{
    int i=0;
    for(i=0;i<5;i++) {
        printf("[%d]任务A: arg=%s\n",(int)pthread_self(), (char *)arg);
        sleep(1);
    }

    return NULL;
}

void *function02(void *arg)
{
    int i=0;
    for(i=0;i<5;i++) {
        printf("[%d]任务B: arg=%s\n",(int)pthread_self(), (char *)arg);
        sleep(1);
    }

    return NULL;
}

int main(int argc, char const *argv[])
{
    pthread_t tid1;
    pthread_t tid2;

    //创建线程 不阻塞
    pthread_create(&tid1, NULL, function01, "参数1");
    pthread_create(&tid2, NULL, function02, "参数2");
    printf("%d %d\n", (int)tid1, (int)tid2);

    //等在线程退出 阻塞
    pthread_join(tid1, NULL);
    pthread_join(tid2, NULL);
    
    return 0;
}